Modern data storage systems, including network-attached storage (NAS) systems and storage area networks (SANs), have become increasingly complicated to set up, configure and maintain. Even in a seemingly simple scenario involving a single NAS system, it may be necessary to configure a wide variety of data storage objects (e.g., disks, volumes, etc.), each with multiple configuration parameters. For example, an NAS system may include one or more of the following data storage objects: disks, disk groups for RAID (i.e., redundant array of independent disks), aggregates, and/or volumes. Furthermore, each data storage object may have multiple configuration parameters. For example, the configuration parameters for a volume may include a formal name by which the volume is identified, a descriptive name, a storage size, a physical disk association, and others.
A variety of tools have been developed to simplify the tasks associated with configuring and administering data storage objects in data storage systems. For example, a typical data storage system includes one or more management applications designed to provide system administrators with the ability to configure and maintain data storage objects associated with data storage systems. For example, a typical management application may provide a system administrator with a command line interface or a graphical user interface (GUI) for initially generating and configuring one or more data storage objects. To configure a data storage object using a command line interface, a system administrator may have to input (e.g., type on a keyboard) a command and several parameters associated with the command. With a GUI, a system administrator may interact with a management application by specifying, or selecting (e.g., with a pointing device, such as a computer mouse) a variety of configuration parameters for a data storage object. Some management applications may provide system administrators with a centralized view of an enterprise-wide storage infrastructure. In addition, in some cases, the management applications may include tools for browsing existing data storage objects and their configuration parameters.
For a variety of reasons, a system administrator may desire to generate and configure one or more data storage objects with the exact same, or similar, configuration parameters of an existing data storage object. For example, when configuring a back-up volume to store back-up data for an existing data volume, it may be necessary or desirable to have the back-up volume configured the same as the data volume to be backed up. Moreover, an enterprise may have business rules or best practices requiring, as a matter of policy, that similar data storage objects are configured with the same or similar configuration parameters.
Utilizing traditional management tools, generating and configuring a data storage object with configuration parameters to match those of an existing data storage object is a time consuming and error-prone process. Generally, the process involves two distinct steps. First, all of the configuration parameters for the existing data object must be identified and collected. Then, the data storage object must be manually generated and manually configured according to all of the configuration parameters of the existing data storage object.
To complete the first step of the process with traditional management applications, a system administrator must first find or identify the existing data storage object. For example, using a management application with a command line interface, this may be done by typing a command to list all data storage objects of a particular type (e.g., all volumes, or all RAID disk groups). After the existing data storage object has been identified, a second command may be entered to list one or more of the configuration parameters for the data storage object. In some cases, the configuration parameters must be written down so they are readily available for configuring the new data storage object. Finally, after all the configuration parameters have been identified for the existing data storage object, one or more commands, along with a long list of configuration parameters, may be entered to generate the new data storage object. Because the process involves several steps, and because many of the steps require manual input (e.g., typing a command with several parameters), the process is both time consuming and subject to human error.
To alleviate some of the problems, software developers have developed management applications with GUIs. However, even with a GUI-based management application, many of the problems remain. For example a system administrator is still generally required to first identify the configuration parameters for the existing data storage object, and then individually enter, or select, the proper configuration parameters when generating the new data storage object. Even with a GUI-based management application, this may require writing down the configuration parameters after they have been identified, or switching between two interfaces (e.g., windows)—one that displays the configuration parameters of the existing data storage object, and another where the configuration parameters are entered for the new data storage object. Consequently, even when using a management application with a GUI, configuring a data storage object based on the configuration of an existing data storage object may be time consuming and subject to human error.